package org.kingtop.action;

import java.io.Serializable;

/**
 * 结果类，用于返回json的结果类
 * 
 * @author 陈金波 
 * @Date 2017-12-07 
 * @Version 2.0
 *
 */
public class ResultBean<T> implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 7140032827876399465L;
	/**
	 * 状态码，单词参考html状态码，正确执行为200，后面再编码其他的
	 */
	private int statusCode;
	/**
	 * 响应的内容
	 */
	private T data;
	/**
	 * 提示消息
	 */
	private String message;

	/**
	 * 
	 * @param statusCode
	 *            状态码
	 * @param data
	 *            响应的内容
	 * @param message
	 *            提示消息
	 */
	public ResultBean(int statusCode, T data, String message) {
		this.statusCode = statusCode;
		this.data = data;
		this.message = message;
	}

	/**
	 * 
	 * @param codeEnum
	 *            状态的枚举类，里面包括状态码和消息
	 * @param data
	 *            响应的内容
	 */
	public ResultBean(StatusCodeEnum codeEnum, T data) {
		this(codeEnum.getCode(), data, codeEnum.getMessage());
	}

	/**
	 * 默认没有数据
	 * 
	 * @param codeEnum
	 *            状态的枚举类，里面包括状态码和消息
	 */
	public ResultBean(StatusCodeEnum codeEnum) {
		this(codeEnum.getCode(), null, codeEnum.getMessage());
	}

	/**
	 * 默认为成功
	 * 
	 * @param data
	 *            响应的内容
	 * @param message
	 *            提示消息
	 */
	public ResultBean(T data, String message) {
		this(StatusCodeEnum.OK.getCode(), data, message);
	}

	/**
	 * 默认为成功和没有数据
	 * 
	 * @param message
	 *            提示消息
	 */
	public ResultBean(String message) {
		this(StatusCodeEnum.OK.getCode(), null, message);
	}

	public ResultBean(T data) {
		this(StatusCodeEnum.OK.getCode(), data, StatusCodeEnum.OK.getMessage());
	}

	public int getStatusCode() {
		return statusCode;
	}

	public void setStatusCode(int statusCode) {
		this.statusCode = statusCode;
	}

	public T getData() {
		return data;
	}

	public void setData(T data) {
		this.data = data;
	}

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}

}
